In a data communications network it is sometimes desirable to divert data to a destination other than the destination addressed by an initiator. One common example is that of Internet web page caching, in which a request for web content may be directed to a geographically local server containing the same content rather than to the server addressed by the initiator. This reduces the communication fees.
Another example is that of peer-to-peer optimization, in which a request for a particular file is directed to a geographically local peer known to have the file. This optimization reduces the communication fees. An invention to redirect requests to reduce communication fees in a Peer to Peer network (P2P) is disclosed in U.S. application Ser. No. 10/138,336 and is herein incorporated by reference.
A first step in solving the problem of diverting data is by identifying communication sessions, which are using a protocol that can be diverted. In previous solutions, identification has been based simply on port number. The port number is found in every Transmission Communication Protocol (TCP) and User Datagram Protocol (UDP). Internet web caching has been done simply by forwarding all traffic destined for TCP port 80 to the caches. Since all packets including the very first are diverted, there is never any contact with the intended destination.
Current products, such as Alteon provided by Nortel Networks use a technique known as hierarchical search: a selection of traffic based on port number can be analyzed. Such searches require that a device accept connections as a full proxy. The protocol identification is inherently limited to examining content from the initiator of a communication session.
Optimizing peer-to-peer transfers is more difficult because the peer-to-peer protocols do not use fixed port numbers. These so-called dynamic-port protocols use randomly selected ports or share port numbers, such as 80, with other protocols. Thus, the content of the communication session must be analyzed for the tell tale signatures of peer-to-peer protocols.
Some current simple solutions for identifying protocols can classify communication sessions on the basis of examining single packets such as the Network Based Application Recognition (NBAR) product provided by Cisco Systems, Inc. If any packet matches a classification, all subsequent packets of the communication session can be marked to identify the protocol. NBAR does not provide the ability to redirect packets, nor is it able to mark all packets in a communication session, as some are lost before classification is made.
Other solutions use a full proxy technique. The network device accepts a connection from an initiator, examines the content and possibly opens a new session to the intended acceptor. Even if the protocol is not of interest, these two sessions must be managed by the device for the duration of the communication session. The content of the communication session must be analyzed to identify any protocol that doesn't use standardized port numbers.
Thus, there is need for a device, which can divert in-progress sessions based on the content of the initial, few packets of a communication session.